﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BAL.EstRec.Common
{
    public class DatabaseChecker
    {
        public string LocalErrorMessage
        {
            get;
            set;
        }

        public string ISmsErrorMessage
        {
            get;
            set;
        }

        public DatabaseChecker()
        {
            this.ISmsErrorMessage = "";
            this.LocalErrorMessage = "";
        }

        /// <summary>
        /// Ejecuta la consulta para traer el territorio
        /// Si un error existe, quiere decir que no hay base de isms
        /// </summary>
        public bool checkTerritorio()
        {
            bool ismsDBOk = true;

            try
            {
                AUTH.Auth.GetTerritorio();
            }
            catch (Exception ex)
            {
                ismsDBOk = false;
                this.ISmsErrorMessage += "Ha ocurrido un error al conectar con la base de datos. Valide que cuenta con los permisos suficientes, que la base de datos iSMS exista y que el servicio esté activo."
                    + "\nDetalles : " + ex.Message
                    + "\nInner : " + ex.InnerException;
            }

            return ismsDBOk;
        }

        /// <summary>
        /// Ejecuta una consulta a la base de datos para validar que se tenga conexión.
        /// Retorna True si la consulta de prueba es ejecutada correctamente.
        /// </summary>
        public bool checkLocalDB()
        {
            bool localDBOk = true;

            try
            {
                BgtVersion.GetVersion();
            }
            catch (Exception ex)
            {
                localDBOk = false;
                this.LocalErrorMessage += "Ha ocurrido un error al conectar con la base de datos. Valide que cuenta con los permisos suficientes, que la base de datos exista y que el servicio esté activo."
                    + "\nDetalles : " + ex.Message
                    + "\nInner : " + ex.InnerException;
            }

            return localDBOk;
        }
    }
}
